草庐IT

Android JsonArray 和 JsonObject 反序列化

全部标签

java - 如何用我自己的 readObject 调用替换 Java 的默认反序列化?

有人认为使用Java的默认序列化方法将数据库中的对象存储在blob列中是个好主意。这些对象的结构由另一个组控制,他们将字段类型从BigDecimal更改为Long,但我们数据库中的数据保持不变。现在我们无法读回对象,因为它会导致ClassCastExceptions。我试图通过编写自己的readObject方法来覆盖它,但这会抛出StreamCorruptedException,因为默认的writeObject方法写入了什么。如何使我的readObject调用表现得像Java的默认调用?我可以跳过一定数量的字节来获取我的数据吗? 最佳答案

java - 使 "class"成为 transient 或可序列化但该类是可序列化的

在检查我的代码后,SonarQube5.1标记了很多关键问题。但是类本身和字段中的引用类也是可序列化的。被引用类通过类继承可序列化接口(interface)。这是我的例子publicclassAimplementsSerializable{privateBb;//->Sonarcubemarkesthisfieldasnotserialzable}B类定义如下publicclassBextendsC{....}C类定义如下publicabstractclassCextendsD{....}定义了类DpublicabstractclassDimplementsSerializable{.

java - JSONObject 删除空值对

这是我的Json文件:{"models":{},"path":[{"path":"/web-profiles","operations":[{"type":"","responseMessages":[]}]}],"produces":[]}如果键的值为空(包括[]、""、{})。如何从Json文件中删除这些对。我尝试使用JSONObject内置函数来删除不必要的对。但是,它没有用。我尝试使用字符串方法逐行处理。它有太多案例,我无法在我的代码中涵盖所有这些案例。(例如,子键'operations',当你想删除所有空值时,这个键(操作)值对也应该被删除。)有什么想法吗?

java - 如何在反序列化对象中保留字段的默认值?

我的情况如下:对象TableC有4个字段。从JSON字符串中仅读取3个字段(field_C1、field_C2和field_C3)。第四个字段field_C4在具有默认值的对象中定义。当我序列化对象实例(用于输出)时-它忽略字段field_C4,我期望默认值为"1"或"null“。当我将程序中的实例字段的值显式定义为"NEW"时,它确实将其包含在Json输出字符串中。查看输出,在反序列化过程中创建对象实例时,构造函数似乎也被忽略了。激活对象实例的其他字段的最佳做法是什么-这些字段未包含在输入Json字符串的反序列化版本中?packagenewpackage;importjava.uti

java - Gson:序列化 java.nio.Path 导致 StackOverflowError

序列化它,导致StackOverFlowError:importjava.nio.file.Path;importjava.nio.file.Paths;publicclassTmp{privatePathpath=null;publicTmp(){path=Paths.get("c:\\temp\\");}}在我看来这像是一个错误!或者我做错了什么?是否有解决方法(期望编写一些将路径转换为字符串的自定义序列化程序)java.lang.StackOverflowErroratcom.google.gson.internal.$Gson$Types.resolve($Gson$Types

java - Jackson:获取反序列化的空引用

我将spring-mvc用于restful服务。通过添加依赖项,我的其余Controller自动从我的响应实体生成json。依赖性jackson='2.9.0'compile"com.fasterxml.jackson.core:jackson-databind:$jackson"对象@Getter@SetterpublicfinalclassUserDTO{[...]privateintid;privateSetactivities=Sets.newHashSet();}@Getter@SetterpublicfinalclassActivityDTO{[...]privateint

java - 具有嵌套类型信息属性的 Jackson 多态反序列化

我受到给定JSON结构的限制:{"metadata":{"eventName":"FooEvent","field1":"bla"},"event":{...}}如何使用多态反序列化和嵌套类型信息属性对其进行反序列化?我在@JsonTypeInfo中使用metadata.eventName嵌套属性,如下所示:@JsonTypeInfo(use=Id.NAME,include=As.EXISTING_PROPERTY,visible=true,property="metadata.eventName")@JsonSubTypes({@Type(name="fooEvent",value=

java - 使用 Scala 和 Jackson 以及 java.lang.Integer 或 scala.Int 对泛型类型进行奇怪的反序列化问题

我们都知道泛型类型在Java和Scala下会被类型删除。但是我们在使用Jackson和ScalaJackson模块的Scala中遇到了一个奇怪的问题。我创建了一个小测试来展示这个问题。importcom.fasterxml.jackson.databind.ObjectMapperimportcom.fasterxml.jackson.module.scala.DefaultScalaModuleobjectGenericTest{caseclassTestWithInt(id:Option[Int])caseclassTestWithInteger(id:Option[Integer

java - 将代理类序列化到文件

我有一个在JVM运行时生成的代理(生成为JDKProxy或CGLIB代理)。我想知道是否有办法将此类(看起来像com.sun.proxy$Proxy123.class)的内容写入文件,以便我可以使用类似jd-eclipse的反编译器来查看代码类型产生。由于该类存在于JVM中,我想知道是否有一种方法可以要求ClassLoader为实际类提供InputStream/URL,然后可用于将内容写入磁盘-以及磁盘上的这个文件可以使用jd-eclipse或javap读取。我知道这不是生产用例,但我很想看看这个动态生成的类的内容。谢谢! 最佳答案

java - 如何将 scala.collection.Set 转换为 java.util.Set 并在 RDD 中进行序列化

我有一个scala.collection.SetscalaSet:Set[Long]。我如何才能将其转换为可序列化的java.util.Set。我尝试了以下代码,但得到了java.io.notserializableexception:scala.collection.convert.wrappers$setWrapperimportscala.collection.JavaConversions._ClassMySerializableClassextendsSerializable{//methodtoimplementtheScalatoJavaoperationsonthegi